package br.com.SGF.bean;

import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import br.com.SGF.dao.CargoDAO;
import br.com.SGF.domain.CargoDomain;
import br.com.SGF.util.JSFUtil;

@ManagedBean(name = "MBCargo")
@ViewScoped
public class CargoBean  {

	private CargoDomain cargoDomain;
	private List<CargoDomain> cargos;
	private List<CargoDomain> cargosFiltrados;
	private List<CargoDomain> listaCargo;
	
	
	
	

	public List<CargoDomain> getListaCargo() {
		return listaCargo;
	}

	public void setListaCargo(List<CargoDomain> listaCargo) {
		this.listaCargo = listaCargo;
	}

	public CargoDomain getCargoDomain() {
		return cargoDomain;
	}

	public void setCargoDomain(CargoDomain cargoDomain) {
		this.cargoDomain = cargoDomain;
	}

	public List<CargoDomain> getCargos() {
		return cargos;
	}

	public void setCargos(List<CargoDomain> cargos) {
		this.cargos = cargos;
	}

	public List<CargoDomain> getCargosFiltrados() {
		return cargosFiltrados;
	}

	public void setCargosFiltrados(List<CargoDomain> cargosFiltrados) {
		this.cargosFiltrados = cargosFiltrados;
	}

	public void carregarCargos() {
		try {
			CargoDAO carDao = new CargoDAO();
			cargos = carDao.listaCargo();
		} catch (RuntimeException ex) {
			ex.printStackTrace();
			JSFUtil.adicionarMensagemErro(ex.getMessage());

		}
	}

	public void prepararNovo() {
		try {
			cargoDomain = new CargoDomain();

		} catch (RuntimeException ex) {
			ex.printStackTrace();
			JSFUtil.adicionarMensagemErro(ex.getMessage());
		}
	}

	public void incluirCargo() {
		try {
			CargoDAO carDao = new CargoDAO();
			carDao.salvarCargo(cargoDomain);

			cargos = carDao.listaCargo();

			JSFUtil.adicionarMensagemSucesso("Cargo salvo com sucesso!");
		} catch (RuntimeException ex) {
			ex.printStackTrace();
			JSFUtil.adicionarMensagemErro(ex.getMessage());
		}
	}

	public void excluirCargo() {
		try {
			CargoDAO carDao = new CargoDAO();
			carDao.excluirCargo(cargoDomain);
			cargos = carDao.listaCargo();

			JSFUtil.adicionarMensagemSucesso("Cargo excluido com sucesso!");

		} catch (RuntimeException ex) {
			ex.printStackTrace();
			JSFUtil.adicionarMensagemErro(ex.getMessage());
		}
	}

	

	public void alterarCargo() {
		try {
			CargoDAO carDao = new CargoDAO();
			carDao.editarCargo(cargoDomain);

			cargos = carDao.listaCargo();

			JSFUtil.adicionarMensagemSucesso("Cargo alterado com sucesso!");
		} catch (RuntimeException ex) {
			ex.printStackTrace();
			JSFUtil.adicionarMensagemErro(ex.getMessage());
		}
	}
	
}
